package cn.seapon.talker.net;

import org.json.JSONObject;

import android.text.TextUtils;
import android.util.Log;
import cn.seapon.talker.common.ChatMsgEntity;
import cn.seapon.talker.common.LoginRequestEntity;
import cn.seapon.talker.common.MessageContent;
import cn.seapon.talker.common.MessageGenre;
import cn.seapon.talker.common.TMessage;
import cn.seapon.talker.infocarrier.SharedItems;
import cn.seapon.talker.utils.SocketUtils;

/** 
 * @author 作者 E-mail: 
 * @version 创建时间：2015年1月4日 下午7:51:37 
 * 类说明 
 */
public class RequestUtils {
	private static final String TAG = "||__LoginRequest__||";

	/**
	 * 登录请求
	 * @param account 登录账户名
	 * @param passwd 加密后的密码
	 * @return TRUE 登录成功  FALSE 登录失败
	 */
	public static boolean loginCheck(String account ,String passwd) {
		Log.d(TAG, "开始验证用户和密码！");
		if (TextUtils.isEmpty(account) || TextUtils.isEmpty(passwd)) {
			return false;
		}
		try {//如果都不为空  去服务器上验证
			TMessage tm = new TMessage();
			tm.setSenderId(account);
			tm.setSendTime(System.currentTimeMillis());
			tm.setGenre(MessageGenre.LOGIN_REQUEST);
			LoginRequestEntity entity = new LoginRequestEntity();
			entity.setAccount(account);
			entity.setPasswd(passwd);
//			entity.setCaptcha("");
//			entity.setType(ChatMsgType.TEXT);
			MessageContent content = new MessageContent();
			content.setLoginEntity(entity);
			tm.setContent(content);

			System.out.println("写入数据为："+tm.getJSonString());
			if (SocketUtils.writeStringToSocket(SharedItems.socket, tm.getJSonString())) {
				System.out.println("写入完成");
			}
			String line = SocketUtils.readStringFromSocket(SharedItems.socket);

			Log.d(TAG, "登录返回的数据是："+line);
			JSONObject json = new JSONObject(line);
			TMessage messagRet = TMessage.getObjectFromJson(json);
			//登录结果
			boolean resultCode = messagRet.getContent().getResultCode();

			if (resultCode == true) {
				SharedItems.friendListInfomation = messagRet.getContent().getFriendInfos();
				SharedItems.groupInfo = messagRet.getContent().getGroupInfo();
				ChatMsgEntity[] unreads = messagRet.getContent().getUnreads();
				for (int i = 0; i < unreads.length; i++) {
					SharedItems.add(unreads[i]);
				}
				SharedItems.userInformation = messagRet.getContent().getUserInfo();
				return true;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}


}
